package com.swak.corpwx;

import java.util.concurrent.CompletableFuture;

import com.swak.corpwx.department.CpDepartment;
import com.swak.corpwx.department.CpDepartmentAddResp;
import com.swak.corpwx.department.CpDepartmentDeleteResp;
import com.swak.corpwx.department.CpDepartmentGetResp;
import com.swak.corpwx.department.CpDepartmentListResp;
import com.swak.corpwx.department.CpDepartmentUpdateResp;
import com.swak.wechat.WechatConfig;

/**
 * 部门接口
 * 
 * @author 618lf
 */
public interface CpDepartmentService {

	/**
	 * 设置部门
	 * 
	 * @param add
	 * @return
	 */
	CompletableFuture<CpDepartmentAddResp> addDepartment(WechatConfig app, CpDepartment add);

	/**
	 * 修改部门
	 * 
	 * @param update
	 * @return
	 */
	CompletableFuture<CpDepartmentUpdateResp> updateDepartment(WechatConfig app, CpDepartment update);

	/**
	 * 删除部门
	 * 
	 * @param del
	 * @return
	 */
	CompletableFuture<CpDepartmentDeleteResp> delDepartment(WechatConfig app, CpDepartment del);

	/**
	 * 部门的详情
	 * 
	 * @param del
	 * @return
	 */
	@Deprecated
	CompletableFuture<CpDepartmentGetResp> getDepartment(WechatConfig app, Integer id);

	/**
	 * 部门的详情
	 * 
	 * @param del
	 * @return
	 */
	CompletableFuture<CpDepartmentListResp> listDepartments(WechatConfig app, Integer id);
}